#include "../code/defs.h"

bool comp(const pair<double, double> & v, const pair<double, double> & w)
{
	return (v.first < w.first);
}

int main(int argc, char* argv[])
{    
    string nombre_entrada, nombre_salida;
    
    if (argc == 2)
	{
		string nombre = argv[1];
		nombre_entrada = nombre + ".out";		
		nombre_salida = nombre + "Sorted.out";		
	}
    else
    {
        cout << "Se necesita un parámetro, el nombre del archivo a utilizar. Este debe ser de la forma 'nombre.out' y debe ingresarse como input solamente el nombre." << endl;
        exit(1);
    }
    
    ifstream entrada(nombre_entrada.c_str());    
    ofstream salida(nombre_salida.c_str());
    
    salida.precision(20);
	salida.setf(std::ios_base::scientific, std::ios_base::floatfield);
        
    vector<pair<double, double> > v;
    
    forn(i, 100)
    {
		double nro, valor;
		
		entrada >> nro >> valor;
		
		v.push_back(make_pair(nro, valor));		
	}
	entrada.close();
	
	sort(v.begin(), v.end(), comp);
	
	forn(i, 100)
    {
		salida << (v[i]).first << " " << (v[i]).second << endl;		
	}
	
	salida.close();
    
    return 0;
}
